<html>
    <head>
        <title>读取设置</title>
    </head>、
    <body>
        <script>
            /*
                    二、读取设置

                            1、ISettingProvider 接口：

                                    ISettingProvider用于获取设置的值或获取所有设置的值。示例用法：

                                            public class MyService
                                            {
                                                private readonly ISettingProvider _settingProvider;

                                                public MyService(ISettingProvider settingProvider)
                                                {
                                                    _settingProvider = settingProvider; // 注入 ISettingProvider 接口

                                                }

                                                public async Task FooAsync()
                                                {
                                                    // 读取设置值
                                                    string userName = await _settingProvider.GetOrNullAsync("Smtp.UserName");

                                                    // 读取布尔值，或默认值（false）如果没有设置
                                                    bool enableSsl = await _settingProvider.GetAsync<bool>("Smtp.EnableSsl");

                                                    //  获取布尔值，或 true 如果没有设置
                                                    bool enableSsl = await _settingProvider.GetAsync<bool>(
                                                        "Smtp.EnableSsl", defaultValue: true);
                                                    
                                                    // 获取布尔值
                                                    bool enableSsl = await _settingProvider.IsTrueAsync("Smtp.EnableSsl");
                                                    
                                                    // 获取int值，如果没有默认为0
                                                    int port = (await _settingProvider.GetAsync<int>("Smtp.Port"));

                                                    // 获取int值，如果没有默认为null
                                                    int? port = (await _settingProvider.GetOrNullAsync("Smtp.Port"))?.To<int>();
                                                }
                                            }

                                        ISettingProvider是一个非常常见的服务，一些基类（如IApplicationService）已经对其进行了属性注入。
                                        在这种情况下，你可以直接使用SettingProvider属性。

                            2、在客户端读取设置值

                                      如果允许设置在客户端可见，也可以从客户端代码中读取设置的当前值。请参阅以下文档以了解如何获取不同UI类型中的设置值；
                                      
                                      MVC / Razor Pages :https://abp.io/docs/latest/framework/ui/mvc-razor-pages/javascript-api/settings
                */
        </script>
    </body>
</html>